package cn.tannn.cat.file.server.service;

import cn.tannn.cat.file.server.controller.manage.dto.DictSortEdit;
import cn.tannn.cat.file.server.entity.Dict;
import cn.tannn.cat.file.server.enums.DictType;
import cn.tannn.jdevelops.jpa.service.J2Service;

import java.util.List;
import java.util.Optional;

/**
 * 字典服务
 *
 * @author <a href="https://tannn.cn/">tan</a>
 * @date 2024/3/7 14:12
 */
public interface DictService extends J2Service<Dict> {

    /**
     * 启用
     *
     * @param ids id集合
     */
    void enables(List<Long> ids);

    /**
     * 停用
     *
     * @param ids id集合
     */
    void disable(List<Long> ids);

    /**
     * 修改顺序
     *
     * @param sort DictSortEdit
     */
    void sort(DictSortEdit sort);


    /**
     * 新增字典
     *
     * @param dict Dict
     */
    void append(Dict dict);


    /**
     * 查询 有效的 存储器dict
     *
     * @return DictVO
     */
    List<Dict> fileDict();

    /**
     * 获取字典
     *
     * @param value    值
     * @param dictType 类型
     * @return Dict
     */
    Optional<Dict> findDict(String value, DictType dictType);
}
